Three-piston ankle mechanism of a legged robot and associated control system

ABSTRACT

An example robot includes a first actuator and a second actuator connecting a first portion of a first member of the robot to a second member of the robot. Extension of the first actuator accompanied by retraction of the second actuator causes the first member to roll in a first roll direction. Retraction of the first actuator accompanied by extension of the second actuator causes the first member to roll in a second roll direction. A third actuator connects a second portion of the first member to the second member. Extension of the third actuator accompanied by retraction of both the first and second actuators causes the first member to pitch in a first pitch direction. Retraction of the third actuator accompanied by extension of both the first and second actuators causes the first member to pitch in a second pitch direction.

BACKGROUND

A robot may have a plurality of members composing the robot's legs andarms. The robot may be configured to perform tasks that involve walking,running, standing in position, grasping objects, etc. To perform thesetasks, a controller of the robot may actuate one or more of the membersof the robot. For instance, controller may actuate the legs so as tocause the robot to take steps toward a particular location whilemaintaining its balance.

SUMMARY

The present disclosure describes implementations that relate to athree-piston ankle mechanism of a legged robot and associated controlsystem. In a first example implementation, the present disclosuredescribes a robot. The robot includes a first actuator and a secondactuator connecting an anterior portion of a first member of the robotto a second member of the robot. Extension of the first actuatoraccompanied by retraction of the second actuator causes the first memberto roll in a first roll direction relative to the second member.Retraction of the first actuator accompanied by extension of the secondactuator causes the first member to roll in a second roll directionopposite to the first roll direction relative to the second member. Therobot also includes a third actuator connecting a posterior portion ofthe first member to the second member. Extension of the third actuatoraccompanied by retraction of one of or both the first and secondactuators causes the first member to pitch in a first pitch directionrelative to the second member. Retraction of the third actuatoraccompanied by extension of one of or both the first and secondactuators causes the first member to pitch in a second pitch directionopposite to the first pitch direction relative to the second member.

In a second example implementation, the present disclosure describesperforming the following operations: (i) determining a desired locationfor a center of pressure of a foot of a robot operating on a surface,where the robot includes: (a) a first actuator and a second actuatorconnecting a first portion of the foot to a shin of the robot, whereextension of the first actuator accompanied by refraction of the secondactuator causes the foot to roll in a first roll direction relative tothe shin, and where retraction of the first actuator accompanied byextension of the second actuator causes the foot to roll in a secondroll direction opposite to the first roll direction relative to theshin, and (b) a third actuator connecting a second portion of the footto the shin, where extension of the third actuator accompanied byretraction of one of or both the first and second actuators causes thefoot to pitch in a first pitch direction relative to the shin, and whereretraction of the third actuator accompanied by extension of one of orboth the first and second actuators causes the foot to pitch in a secondpitch direction opposite to the first pitch direction relative to theshin; (ii) determining pitch and roll torques to be applied by the footon the surface to cause a location of the center of pressure to bewithin a threshold distance from the desired location; and (iii)actuating at least one of the first, second, and third actuators tocause the foot to apply the determined pitch and roll torques.

In a third example implementation, the present disclosure describes anon-transitory computer readable medium having stored thereininstructions that, when executed by a computing device, cause thecomputing device to perform operations in accordance with the secondexample implementation.

A fourth example implementation may include a system having means forperforming operations in accordance with the second exampleimplementation

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects,implementations, and features described above, further aspects,implementations, and features will become apparent by reference to thefigures and the following detailed description.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an example configuration of a robotic system, inaccordance with an example implementation.

FIG. 2 illustrates a quadruped robot, in accordance with an exampleimplementation.

FIG. 3 illustrates a biped robot, in accordance with another exampleimplementation.

FIG. 4 illustrates an example foot of a robot connected to a shin of arobot by way of three actuators, in accordance with an exampleimplementation.

FIG. 5 illustrates an exploded view of the leg illustrated in FIG. 4, inaccordance with an example implementation.

FIGS. 6A-6B illustrate the foot pitching backward and forward relativeto the shin, in accordance with an example implementation.

FIGS. 7A-7B illustrate the foot rolling relative to the shin, inaccordance with an example implementation.

FIG. 8A illustrates an example hydraulic system configured to operatethree actuators, in accordance with an example implementation.

FIG. 8B illustrates another example hydraulic system configured tooperate three actuators, in accordance with an example implementation.

FIG. 9 illustrates an example control system for orientation of thefoot, in accordance with an example embodiment.

FIG. 10 illustrates effect of a location of a center of pressure onoperation of the robot, in accordance with an example implementation.

FIG. 11 illustrates an example torque control system, in accordance withan example implementation.

FIGS. 12A, 12B, and 12C illustrate possible locations of the center ofpressure of the foot based on pitch and roll angles of the foot, inaccordance with an example implementation.

FIGS. 13A, 13B, and 13C illustrate possible scenarios of torquemodification, in accordance with example implementations.

FIG. 14 is a flow chart of a method for controlling a three-piston anklemechanism of a legged robot, in accordance with an exampleimplementation.

DETAILED DESCRIPTION

The following detailed description describes various features andoperations of the disclosed systems with reference to the accompanyingfigures. The illustrative implementations described herein are not meantto be limiting. Certain aspects of the disclosed systems can be arrangedand combined in a wide variety of different configurations, all of whichare contemplated herein.

Further, unless context suggests otherwise, the features illustrated ineach of the figures may be used in combination with one another. Thus,the figures should be generally viewed as component aspects of one ormore overall implementations, with the understanding that not allillustrated features are necessary for each implementation.

Additionally, any enumeration of elements, blocks, or steps in thisspecification or the claims is for purposes of clarity. Thus, suchenumeration should not be interpreted to require or imply that theseelements, blocks, or steps adhere to a particular arrangement or arecarried out in a particular order.

I. Example Robotic Systems

FIG. 1 illustrates an example configuration of a robotic system that maybe used in connection with the implementations described herein. Therobotic system 100 may be configured to operate autonomously,semi-autonomously, and/or using directions provided by user(s). Therobotic system 100 may be implemented in various forms, such as a bipedrobot, quadruped robot, or some other arrangement. Furthermore, therobotic system 100 may also be referred to as a robot, robotic device,or mobile robot, among other designations.

As shown in FIG. 1, the robotic system 100 may include processor(s) 102,data storage 104, and controller(s) 108, which together may be part of acontrol system 118. The robotic system 100 may also include sensor(s)112, power source(s) 114, mechanical components 110, and electricalcomponents 116. Nonetheless, the robotic system 100 is shown forillustrative purposes, and may include more or fewer components. Thevarious components of robotic system 100 may be connected in any manner,including wired or wireless connections. Further, in some examples,components of the robotic system 100 may be distributed among multiplephysical entities rather than a single physical entity. Other exampleillustrations of robotic system 100 may exist as well.

Processor(s) 102 may operate as one or more general-purpose hardwareprocessors or special purpose hardware processors (e.g., digital signalprocessors, application specific integrated circuits, etc.). Theprocessor(s) 102 may be configured to execute computer-readable programinstructions 106, and manipulate data 107, both of which are stored inthe data storage 104. The processor(s) 102 may also directly orindirectly interact with other components of the robotic system 100,such as sensor(s) 112, power source(s) 114, mechanical components 110,and/or electrical components 116.

The data storage 104 may be one or more types of hardware memory. Forexample, the data storage 104 may include or take the form of one ormore computer-readable storage media that can be read or accessed byprocessor(s) 102. The one or more computer-readable storage media caninclude volatile and/or non-volatile storage components, such asoptical, magnetic, organic, or another type of memory or storage, whichcan be integrated in whole or in part with processor(s) 102. In someimplementations, the data storage 104 can be a single physical device.In other implementations, the data storage 104 can be implemented usingtwo or more physical devices, which may communicate with one another viawired or wireless communication. As noted previously, the data storage104 may include the computer-readable program instructions 106 and thedata 107. The data 107 may be any type of data, such as configurationdata, sensor data, and/or diagnostic data, among other possibilities.

The controller 108 may include one or more electrical circuits, units ofdigital logic, computer chips, and/or microprocessors that areconfigured to (perhaps among other tasks), interface between anycombination of the mechanical components 110, the sensor(s) 112, thepower source(s) 114, the electrical components 116, the control system118, and/or a user of the robotic system 100. In some implementations,the controller 108 may be a purpose-built embedded device for performingspecific operations with one or more subsystems of the robotic system100.

The control system 118 may monitor and physically change the operatingconditions of the robotic system 100. In doing so, the control system118 may serve as a link between portions of the robotic system 100, suchas between mechanical components 110 and/or electrical components 116.In some instances, the control system 118 may serve as an interfacebetween the robotic system 100 and another computing device. Further,the control system 118 may serve as an interface between the roboticsystem 100 and a user. The instance, the control system 118 may includevarious components for communicating with the robotic system 100,including a joystick, buttons, and/or ports, etc. The example interfacesand communications noted above may be implemented via a wired orwireless connection, or both. The control system 118 may perform otheroperations for the robotic system 100 as well.

During operation, the control system 118 may communicate with othersystems of the robotic system 100 via wired or wireless connections, andmay further be configured to communicate with one or more users of therobot. As one possible illustration, the control system 118 may receivean input (e.g., from a user or from another robot) indicating aninstruction to perform a particular gait in a particular direction, andat a particular speed. A gait is a pattern of movement of the limbs ofan animal, robot, or other mechanical structure.

Based on this input, the control system 118 may perform operations tocause the robotic system 100 to move according to the requested gait. Asanother illustration, a control system may receive an input indicatingan instruction to move to a particular geographical location. Inresponse, the control system 118 (perhaps with the assistance of othercomponents or systems) may determine a direction, speed, and/or gaitbased on the environment through which the robotic system 100 is movingen route to the geographical location.

Operations of the control system 118 may be carried out by theprocessor(s) 102. Alternatively, these operations may be carried out bythe controller 108, or a combination of the processor(s) 102 and thecontroller 108. In some implementations, the control system 118 maypartially or wholly reside on a device other than the robotic system100, and therefore may at least in part control the robotic system 100remotely.

Mechanical components 110 represent hardware of the robotic system 100that may enable the robotic system 100 to perform physical operations.As a few examples, the robotic system 100 may include physical memberssuch as leg(s), arm(s), and/or wheel(s). The physical members or otherparts of robotic system 100 may further include actuators arranged tomove the physical members in relation to one another. The robotic system100 may also include one or more structured bodies for housing thecontrol system 118 and/or other components, and may further includeother types of mechanical components. The particular mechanicalcomponents 110 used in a given robot may vary based on the design of therobot, and may also be based on the operations and/or tasks the robotmay be configured to perform.

In some examples, the mechanical components 110 may include one or moreremovable components. The robotic system 100 may be configured to addand/or remove such removable components, which may involve assistancefrom a user and/or another robot. For example, the robotic system 100may be configured with removable arms, hands, feet, and/or legs, so thatthese appendages can be replaced or changed as needed or desired. Insome implementations, the robotic system 100 may include one or moreremovable and/or replaceable battery units or sensors. Other types ofremovable components may be included within some implementations.

The robotic system 100 may include sensor(s) 112 arranged to senseaspects of the robotic system 100. The sensor(s) 112 may include one ormore force sensors, torque sensors, velocity sensors, accelerationsensors, position sensors, proximity sensors, motion sensors, locationsensors, load sensors, temperature sensors, touch sensors, depthsensors, ultrasonic range sensors, infrared sensors, object sensors,and/or cameras, among other possibilities. Within some examples, therobotic system 100 may be configured to receive sensor data from sensorsthat are physically separated from the robot (e.g., sensors that arepositioned on other robots or located within the environment in whichthe robot is operating).

The sensor(s) 112 may provide sensor data to the processor(s) 102(perhaps by way of data 107) to allow for interaction of the roboticsystem 100 with its environment, as well as monitoring of the operationof the robotic system 100. The sensor data may be used in evaluation ofvarious factors for activation, movement, and deactivation of mechanicalcomponents 110 and electrical components 116 by control system 118. Forexample, the sensor(s) 112 may capture data corresponding to the terrainof the environment or location of nearby objects, which may assist withenvironment recognition and navigation. In an example configuration,sensor(s) 112 may include RADAR (e.g., for long-range object detection,distance determination, and/or speed determination), LIDAR (e.g., forshort-range object detection, distance determination, and/or speeddetermination), SONAR (e.g., for underwater object detection, distancedetermination, and/or speed determination), VICON® (e.g., for motioncapture), one or more cameras (e.g., stereoscopic cameras for 3Dvision), a global positioning system (GPS) transceiver, and/or othersensors for capturing information of the environment in which therobotic system 100 is operating. The sensor(s) 112 may monitor theenvironment in real time, and detect obstacles, elements of the terrain,weather conditions, temperature, and/or other aspects of theenvironment.

Further, the robotic system 100 may include sensor(s) 112 configured toreceive information indicative of the state of the robotic system 100,including sensor(s) 112 that may monitor the state of the variouscomponents of the robotic system 100. The sensor(s) 112 may measureactivity of systems of the robotic system 100 and receive informationbased on the operation of the various features of the robotic system100, such the operation of extendable legs, arms, or other mechanicaland/or electrical features of the robotic system 100. The data providedby the sensor(s) 112 may enable the control system 118 to determineerrors in operation as well as monitor overall operation of componentsof the robotic system 100.

As an example, the robotic system 100 may use force sensors to measureload on various components of the robotic system 100. In someimplementations, the robotic system 100 may include one or more forcesensors on an arm or a leg to measure the load on the actuators thatmove one or more members of the arm or leg. As another example, therobotic system 100 may use one or more position sensors to sense theposition of the actuators of the robotic system. For instance, suchposition sensors may sense states of extension, retraction, or rotationof the actuators on arms or legs.

As another example, the sensor(s) 112 may include one or more velocityand/or acceleration sensors. For instance, the sensor(s) 112 may includean inertial measurement unit (IMU). The IMU may sense velocity andacceleration in the world frame, with respect to the gravity vector. Thevelocity and acceleration sensed by the IMU may then be translated tothat of the robotic system 100 based on the location of the IMU in therobotic system 100 and the kinematics of the robotic system 100.

The robotic system 100 may include other types of sensors not explicateddiscussed herein. Additionally or alternatively, the robotic system mayuse particular sensors for purposes not enumerated herein.

The robotic system 100 may also include one or more power source(s) 114configured to supply power to various components of the robotic system100. Among other possible power systems, the robotic system 100 mayinclude a hydraulic system, electrical system, batteries, and/or othertypes of power systems. As an example illustration, the robotic system100 may include one or more batteries configured to provide charge tocomponents of the robotic system 100. Some of the mechanical components110 and/or electrical components 116 may each connect to a differentpower source, may be powered by the same power source, or be powered bymultiple power sources.

Any type of power source may be used to power the robotic system 100,such as electrical power or a gasoline engine. Additionally oralternatively, the robotic system 100 may include a hydraulic systemconfigured to provide power to the mechanical components 110 using fluidpower. Components of the robotic system 100 may operate based onhydraulic fluid being transmitted throughout the hydraulic system tovarious hydraulic motors and hydraulic cylinders, for example. Thehydraulic system may transfer hydraulic power by way of pressurizedhydraulic fluid through tubes, flexible hoses, or other links betweencomponents of the robotic system 100. The power source(s) 114 may chargeusing various types of charging, such as wired connections to an outsidepower source, wireless charging, combustion, or other examples.

The electrical components 116 may include various mechanisms capable ofprocessing, transferring, and/or providing electrical charge or electricsignals. Among possible examples, the electrical components 116 mayinclude electrical wires, circuitry, and/or wireless communicationtransmitters and receivers to enable operations of the robotic system100. The electrical components 116 may interwork with the mechanicalcomponents 110 to enable the robotic system 100 to perform variousoperations. The electrical components 116 may be configured to providepower from the power source(s) 114 to the various mechanical components110, for example. Further, the robotic system 100 may include electricmotors. Other examples of electrical components 116 may exist as well.

Although not shown in FIG. 1, the robotic system 100 may include a body,which may connect to or house appendages and components of the roboticsystem. As such, the structure of the body may vary within examples andmay further depend on particular operations that a given robot may havebeen designed to perform. For example, a robot developed to carry heavyloads may have a wide body that enables placement of the load.Similarly, a robot designed to reach high speeds may have a narrow,small body that does not have substantial weight. Further, the bodyand/or the other components may be developed using various types ofmaterials, such as metals or plastics. Within other examples, a robotmay have a body with a different structure or made of various types ofmaterials.

The body and/or the other components may include or carry the sensor(s)112. These sensors may be positioned in various locations on the roboticsystem 100, such as on the body and/or on one or more of the appendages,among other examples.

On its body, the robotic system 100 may carry a load, such as a type ofcargo that is to be transported. The load may also represent externalbatteries or other types of power sources (e.g., solar panels) that therobotic system 100 may utilize. Carrying the load represents one exampleuse for which the robotic system 100 may be configured, but the roboticsystem 100 may be configured to perform other operations as well.

As noted above, the robotic system 100 may include various types oflegs, arms, wheels, and so on. In general, the robotic system 100 may beconfigured with zero or more legs. An implementation of the roboticsystem with zero legs may include wheels, treads, or some other form oflocomotion. An implementation of the robotic system with two legs may bereferred to as a biped, and an implementation with four legs may bereferred as a quadruped. Implementations with six or eight legs are alsopossible. For purposes of illustration, biped and quadrupedimplementations of the robotic system 100 are described below.

FIG. 2 illustrates a quadruped robot 200, according to an exampleimplementation. Among other possible features, the robot 200 may beconfigured to perform some of the operations described herein. The robot200 includes a control system, and legs 204A, 204B, 204C, 204D connectedto a body 208. Each leg may include a respective foot 206A, 206B, 206C,206D that may contact a surface (e.g., a ground surface). Further, therobot 200 is illustrated with sensor(s) 210, and may be capable ofcarrying a load on the body 208. Within other examples, the robot 200may include more or fewer components, and thus may include componentsnot shown in FIG. 2.

The robot 200 may be a physical representation of the robotic system 100shown in FIG. 1, or may be based on other configurations. Thus, therobot 200 may include one or more of mechanical components 110,sensor(s) 112, power source(s) 114, electrical components 116, and/orcontrol system 118, among other possible components or systems.

The configuration, position, and/or structure of the legs 204A-204D mayvary in example implementations. The legs 204A-204D enable the robot 200to move relative to its environment, and may be configured to operate inmultiple degrees of freedom to enable different techniques of travel. Inparticular, the legs 204A-204D may enable the robot 200 to travel atvarious speeds according to the mechanics set forth within differentgaits. The robot 200 may use one or more gaits to travel within anenvironment, which may involve selecting a gait based on speed, terrain,the need to maneuver, and/or energy efficiency.

Further, different types of robots may use different gaits due tovariations in design. Although some gaits may have specific names (e.g.,walk, trot, run, bound, gallop, etc.), the distinctions between gaitsmay overlap. The gaits may be classified based on footfall patterns—thelocations on a surface for the placement the feet 206A-206D. Similarly,gaits may also be classified based on ambulatory mechanics.

The body 208 of the robot 200 connects to the legs 204A-204D and mayhouse various components of the robot 200. For example, the body 208 mayinclude or carry sensor(s) 210. These sensors may be any of the sensorsdiscussed in the context of sensor(s) 112, such as a camera, LIDAR, oran infrared sensor. Further, the locations of sensor(s) 210 are notlimited to those illustrated in FIG. 2. Thus, sensor(s) 210 may bepositioned in various locations on the robot 200, such as on the body208 and/or on one or more of the legs 204A-204D, among other examples.

FIG. 3 illustrates a biped robot 300 according to another exampleimplementation. Similar to robot 200, the robot 300 may correspond tothe robotic system 100 shown in FIG. 1, and may be configured to performsome of the implementations described herein. Thus, like the robot 200,the robot 300 may include one or more of mechanical components 110,sensor(s) 112, power source(s) 114, electrical components 116, and/orcontrol system 118.

For example, the robot 300 may include legs 304 and 306 connected to abody 308. Each leg may consist of one or more members connected byjoints and configured to operate with various degrees of freedom withrespect to one another. Each leg may also include a respective foot 310and 312, which may contact a surface (e.g., the ground surface). Likethe robot 200, the legs 304 and 306 may enable the robot 300 to travelat various speeds according to the mechanics set forth within gaits. Therobot 300, however, may utilize different gaits from that of the robot200, due at least in part to the differences between biped and quadrupedcapabilities.

The robot 300 may also include arms 318 and 320. These arms mayfacilitate object manipulation, load carrying, and/or balancing for therobot 300. Like legs 304 and 306, each arm may consist of one or moremembers connected by joints and configured to operate with variousdegrees of freedom with respect to one another. Each arm may alsoinclude a respective hand 322 and 324. The robot 300 may use hands 322and 324 (or end-effectors) for gripping, turning, pulling, and/orpushing objects. The hands 322 and 324 may include various types ofappendages or attachments, such as fingers, grippers, welding tools,cutting tools, and so on.

The robot 300 may also include sensor(s) 314, corresponding to sensor(s)112, and configured to provide sensor data to its control system. Insome cases, the locations of these sensors may be chosen in order tosuggest an anthropomorphic structure of the robot 300. Thus, asillustrated in FIG. 3, the robot 300 may contain vision sensors (e.g.,cameras, infrared sensors, object sensors, range sensors, etc.) withinits head 316.

II. Example Three-Piston Ankle Mechanism of a Legged Robot

In examples, a controller of a legged robot may be configured to controlthe robot to move about on its legs or be in a stance position whilemaintaining its balance. An example robot may be a bipedal robot havingtwo legs, a quadruped robot having four legs, among other possibilities.The controller may be configured to enable the robot to stand, walk,trot, or run in a given directions.

A leg of an example robot may have several members or links, such as afoot and a shin. The foot and shin may be connected at an ankle jointsuch that the ankle joint controls one or more angles of the footrelative to the shin. In examples, ankle joints use hydraulic power toapply a torque on the foot during liftoff, touchdown, and stance phasesof a step taken by the robot. But other sources of power may be used.

FIG. 4 illustrates an example foot 400 of a robot connected to a shin402 of a robot by way of three actuators, in accordance with an exampleimplementation. The foot 400 and the shin 402 may for example be thefoot and shin of the robot 300.

Two linear actuators, 404 and 406, connect a first portion, e.g., ananterior portion, of the foot 400 to the shin 402. A third linearactuator 408 connects a second portion, e.g., posterior portion, of thefoot 400 to the shin 402. The two linear actuators 404 and 406 are shownconnected to an anterior portion of the foot 400 and the third actuator408 is shown connected to a posterior portion of the foot 400 as anillustration. In other implementations, the two linear actuators 404 and406 could be connected to a posterior portion of the foot 400 and thethird actuator 408 could be connected to an anterior portion of the foot400. In some examples, the third actuator 408 may be connected to anintermediate member (e.g., a talus) as described below with respect toFIG. 5. In the description herein, the actuator 404 is referred to asthe left actuator, the actuator 406 is referred to as the rightactuator, and the actuator 408 is referred to as the hind actuator.

FIG. 5 illustrates an exploded view of the leg illustrated in FIG. 4, inaccordance with an example implementation. In the example implementationof FIG. 5, the left actuator 404 includes a left connecting rod 500connected to a left piston 502 by way of a spherical joint 504.Similarly, the right actuator 406 includes a right connecting rod 506connected to a right piston 508 by way of a spherical joint 510. Thehind actuator 408 also includes a hind connecting rod 512 connected to ahind piston 514 by way of a spherical joint 516. In examples, thepistons 502, 508, and 514 may be of a push-only type pistons. In theseexamples, the spherical joints 504, 510, and 516 may be of aball-and-socket type. This construction allows for zero backlash in thejoints to enable more accurate control of respective positions of thepistons 502, 508, and 514. However, other constructions are possible.

The connecting rods 500 and 506 are coupled to the foot 400 by way of abolt 518 inserted in holes 520A and 520B in the connecting rods 500 and506, respectively, and corresponding hole(s) 520C in a bracket 522coupled to the foot 400. The hind connecting rod 512 is coupled to anintermediate member or talus 524 by way of a bolt 526 inserted in a hole527A in the hind connecting rod 512 and corresponding hole(s) 527B inthe talus 524. The talus 524 in turn is coupled or assembled to the foot400 by way of a bolt 528 inserted through holes (not shown) in the talus524 and the foot 400.

Further, the shin 402 is coupled to the talus 524 by way of a bolt 530inserted through holes 532A and 532B in the shin 402 and correspondinghole(s) 532C in the talus 524. In this manner, motion of the left andright actuators 404 and 406 in opposite directions relative to eachother causes the foot 400 to roll relative to the talus 524. Motion ofthe hind actuator 408 in an opposite direction relative to motion of atleast one of the left actuator 404 and the right actuator 406 causes anassembly of the foot 400 and the talus 524 to pitch forward or backward.

The construction shown in FIG. 5 is shown as an example implementationfor illustration, and is not meant to be limiting. Other constructionfeatures and configurations could be implemented.

A controller (e.g., the controller 108) of the robot having the legshown in FIGS. 4 and 5 can change pitch and roll angles of the foot 400relative to shin 402 by commanding the actuators 404, 406, and 408.FIGS. 6A-6B illustrate the foot 400 pitching backward and forwardrelative to the shin 402, in accordance with an example implementation.Particularly, FIG. 6A illustrates a side view of the leg illustrated inFIGS. 4 and 5 while the foot 400 is pitched backward (toe-up), whileFIG. 6B illustrates the side view of the leg while the foot 400 ispitched forward (toe-down).

To cause the foot 400 to pitch backward (i.e., toe-up) as shown in FIG.6A, the controller may command both the left and right actuators 404 and406 to retract, while commanding the hind actuator 408 to extend. Tocause the foot to pitch forward (i.e., toe-down) as shown in FIG. 6B,the controller may command both the left and right actuators 404 and 406to extend, while commanding the hind actuator 408 to retract. Inexamples, the controller may only command the left and right actuators404 and 406 to extend or retract. In response, the hind actuator 408 maymove in the opposite direction without being commanded, by virtue of themotion of the foot 400.

In some examples, the extent of pitching forward may be different fromthe extent of pitching backward based on a range of extension andretraction of the actuators 404, 406, and 408 and based on geometry ofthe ankle relative to the foot 400 and shin 402. For instance, as shownin FIG. 6A, the foot 400 can pitch backward, i.e., toe-up, for an angleof about 62°. However, as shown in FIG. 6B, the foot 400 can pitchforward, i.e., toe-down for an angle of about 40°.

FIGS. 7A-7B illustrate the foot 400 rolling relative to the shin 402, inaccordance with an example implementation. Particularly, FIG. 7Aillustrates a front view of the leg illustrated in FIGS. 4 and 5 whilethe foot 400 is rolled leftward (clockwise) from a perspective of aperson looking at FIG. 7A. On the other hand, FIG. 7B illustrates thefront view of the leg while the foot 400 is rolled rightward(counter-clockwise) from a perspective of a person looking at FIG. 7B.

To cause the foot 400 to roll leftward as shown in FIG. 7A, thecontroller may command the left actuator 404 to extend, while commandingthe right actuator 406 to retract. To cause the foot 400 to roll rightas shown in FIG. 7B, the controller may command the right actuator 406to extend, while commanding the left actuator 404 to retract. In otherexamples, however, the controller may command on of the actuators 404and 406 to extend or retract, and the other actuator may in responsemove in the opposite direction as the foot 400 rolls.

In some examples, the extent of rolling leftward may be different fromthe extent of rolling rightward based on a range of extension andretraction of the actuators 404 and 406 and geometry of the ankle joint.In other examples, the extent of rolling leftward may be substantiallythe same as (e.g., within a threshold number of degrees, such as 1°-5°,from) the extent of rolling rightward. For instance, as shown in FIGS.7A and 7B, the foot 400 can roll leftward and rightward by the sameangle of about 25°.

The controller can cause simultaneous roll and pitch movements bycommanding all three actuators 404, 406, and 408. As an example, thecontroller may cause the foot 400 to roll leftward while pitchingforward by extending the actuator 404, while retracting both theactuator 408 and 406.

The actuators 404, 406, and 408 could be any type of linear actuators.For example, the actuators 404, 406, and 408 could be electromechanicalactuators operated by an electric motor and a spindle. In anotherexample, the robot may include a hydraulic system that drives theactuators 404, 406, and 408. In this example, the actuators 404, 406,and 408 may be single-acting or double-acting. The actuators 404, 406,and 408 may be of the same type or of different types.

FIG. 8A illustrates an example hydraulic system configured to operatethe actuators 404, 406, and 408, in accordance with an exampleimplementation. As shown in FIG. 8A, the piston 502 of the actuator 404is slidably accommodated inside a cylinder 800. Similarly, the piston508 of the actuator 406 is slidably accommodated inside a respectivecylinder 802, and the piston 514 of the actuator 408 is slidablyaccommodated inside a respective cylinder 804. The cylinder 800 and thepiston 502 define chambers 806 and 807. The cylinder 802 and the piston508 define chambers 808 and 809. The cylinder 804 and the piston 514define chambers 810 and 811.

FIG. 8A also shows three spool valves 812, 814, and 816 having linearlymovable spools 813, 815, and 817, respectively. The three spool valves812, 814, and 816 are each connected to a high pressure fluid source 818and a low pressure fluid reservoir 820. The high pressure fluid source818 may contain or provide pressurized fluid, and the low pressure fluidreservoir 820 may contain fluid having pressure lower than that of thepressurized fluid of the high pressure fluid source 818.

As an example for illustration, the high pressure fluid source 818 maybe a pump driven by a motor or an engine and configured to supplyhydraulic fluid at a pressure of 3000 pounds per square inch (psi). Thelow pressure fluid reservoir 820 may include hydraulic fluid at apressure of 100 psi. These pressure levels are examples only, and otherpressure levels are contemplated as well. In other examples, the highpressure fluid source 818 may be an accumulator. In other examples, thehigh pressure fluid source 818 may include a combination of a pump andan accumulator. In still other examples, the high pressure fluid source818 may be a hydraulic line (e.g., pressure rail) connected to a remotesource of hydraulic fluid.

Linear positions of the spools 813, 815, and 817 determine whether highpressure fluid is communicated to the chambers 806, 808, and 810,respectively. As shown in FIG. 8A, the chambers 808 and 810 arehydraulically connected to the high pressure fluid source 818, while thechamber 806 is hydraulically connected to the low pressure fluidreservoir 820. Thus, high pressure fluid is communicated to the chambers808 and 810 causing the pistons 508 and 514 to extend (move downward inFIG. 8A). In response, the foot 400 may pitch backward (toe-up) whilerolling rightward. As a result, fluid in the chambers 806 is discharged(i.e., forced out) and is communicated to the low pressure fluidreservoir 820 and the piston 502 retracts (moves upward in FIG. 8A).

Thus, by controlling linear positions of the spools 813, 815, and 817, acontroller of the robot may achieve a combination of the motionsillustrated in FIGS. 6A-6B and FIGS. 7A-7B. The controller may controlthe linear positions of the spools 813, 815, and 817 by way ofsolenoids, stepper motors, or any other actuation techniques (notshown). Also, the valves 812, 814, and 816 are depicted as spool valves;however, other types of valve such as rotary valves or poppet valvescould be used.

In examples, instead of communicating fluid to and from the chambers806, 808, and 810, fluid could be communicated to and from the chambers807, 809, and 811. In other examples, valves (not shown) could be addedto the hydraulic system shown in FIG. 8A to select between communicatingfluid to the chambers 806 or 807, 808 or 809, and 810 or 811. Further,other actuator configurations with different piston configurations couldbe used as well.

Although FIG. 8A illustrates three-way spool valves controlling flow offluid to and from the actuators 404, 406, and 408, other valveconfigurations could be used. To that point, FIG. 8B illustrates anotherexample hydraulic system, in accordance with an example implementation.As depicted in FIG. 8B, a four-way spool valve 822 has a spool 824slidably accommodated within a body 825 of the valve 822. An electricsolenoid, a stepper motor, a hydraulic actuator, or any other actuationdevice may be used for moving the spool 824 within the body 825 of thevalve 822. The linear position of the spool 822 controls hydraulic fluidflow from the high pressure fluid source 818 through a hydraulic supplyline 826 to one of the two chambers 806 and 810. The linear position ofthe spool 824 further controls flow of hydraulic fluid forced out fromthe other chamber to the low pressure fluid reservoir 820 through ahydraulic return line 828. The high pressure fluid source 818 and thelow pressure fluid reservoir 820 are duplicated closer to the valve 830in FIG. 8B to reduce visual clutter in FIG. 8B.

The hydraulic system in FIG. 8B further includes another four-way spoolvalve 830 having a spool 832 slidably accommodate within a body 833 ofthe valve 830. An electric solenoid, a stepper motor, a hydraulicactuator, or any other actuation device may be used for moving the spool832 within the body 833 of the valve 830. The linear position of thespool 832 controls hydraulic fluid flow from the high pressure fluidsource 818 through a hydraulic supply line 834 to one of the twochambers 808 and 811. The linear position of the spool 832 furthercontrols flow of hydraulic fluid forced out from the other chamber tothe low pressure fluid reservoir 820 through a hydraulic return line836.

As shown in FIG. 8B, the spool 824 is shifted to a given linear positionso as to allow hydraulic fluid flow from the high pressure fluid source818 through the hydraulic supply line 826, an opening 838, and ahydraulic line 840 to the chamber 806. Such high pressure fluid flowinginto the chamber 806 pushes against the piston 502, causes the piston502 to move in a downward direction, and causes the chamber 806 toexpand. Motion of the piston 502 downward may cause the foot 400 topitch forward, and thus cause the piston 514 of the hind actuator 408 tomove upward. Upward motion of the piston 514 causes the chamber 810 tocontract, forcing hydraulic fluid out from the chamber 810 through ahydraulic line 842 and an opening 844 to flow through the hydraulicreturn line 828 to the low pressure fluid reservoir 820.

As the piston 514 moves upward, when the spool 832 is shifted within thebody 833 of the valve 830 as shown in FIG. 8B, fluid in the chamber 811is forced out through a hydraulic line 846, an opening 848, and thehydraulic line 836 to the low pressure fluid reservoir 820. Also,hydraulic fluid flows from the high pressure fluid source 818 throughthe hydraulic supply line 834, an opening 850, and a hydraulic line 852to the chamber 808. Such high pressure fluid flowing into the chamber808 pushes against the piston 508, causes the piston 508 to move in adownward direction, and causes the chamber 808 to expand. In thismanner, both the pistons 502 and 508 extend, while the piston 514retracts. The foot 400 thus pitches forward. In this configuration ofFIG. 8B, motion of the piston 514 is coupled to motion of the pistons502 and 508 such that the piston 514 moves in an opposite direction fromthe pistons 502 and 508. Positions of the spools 824 and 832 shown inFIG. 8B are examples for illustration. Shifting the spools 824 and 832to different linear positions within the respective valve bodies 825 and833 may cause the foot 400 to roll or to perform a combination of pitchand roll motions.

III. Example Foot Position/Orientation Control System

As described above, the three actuators 404, 406, and 408 control pitchand roll angles of the foot 400, and may thus control orientation of thefoot 400. For instance, the robot may be taking a step, e.g., whilewalking, running, or climbing stair steps. During a portion of the step,the foot 400 may not be contacting a surface, i.e., the foot 400 may bein the air between a lift-off phase and a touch-down phase of the step.The controller of the robot may seek to orientate the foot 400 in aspecific orientation while the foot 400 is in the air. For example,before the foot 400 touches down on a surface, the controller may seekto orientate the foot 400 in a position appropriate for a contour of thesurface on which the foot 400 is about to land. To place the foot 400 insuch a position, the controller may operate the actuators 404, 406, and408 so as to orientate the foot 400 at particular pitch and roll angleswith respect to the shin 402.

In another example, the controller may seek to orientate the foot 500while in contact with a surface to perform admittance control.Particularly, the controller may command the foot 400 to apply a desiredtorque on the surface. The controller may receive feedback informationby way of sensor measurements indicating that the torque being appliedby the foot 400 is not the desired torque. Based on the error ordiscrepancy between the desired torque and the measured torque, thecontroller determines a modified velocity for the foot 400 that wouldreduce or eliminate the error in the torque. The controller thendetermines a position or orientation for the foot 400 to achieve themodified desired velocity (e.g., the controller may integrate themodified velocity to determine a desired position or orientation for thefoot 400). The controller then operates the actuators 404, 406, and 408to achieve such desired orientation of the foot 400. Thus, there arescenarios where the controller may seek to place the foot 400 in aparticular orientation to achieve a particular control objective.

FIG. 9 illustrates an example control system 900 of orientation of thefoot 400, in accordance with an example embodiment. The controller ofthe robot may determine desired pitch and roll angles θ_(d) for the foot400 that corresponds to a desired orientation of the foot 400. Thus,θ_(d) may represent a vector that includes at least two elements, apitch angle and a roll angle.

The range of pitch and roll angles could be physically limited. Forexample, as shown in FIGS. 6A-6B, the pitch angle could be limited tobetween about 62° toe-up angle and a 40° toe-down angle. Similarly, asshown in FIGS. 7A-7B, the roll angle could be limited to an anglebetween +25° and −25°. These angle limitations are determined based onlimits on the extent of extension and refraction of the actuators 404,406, and 408 as well as geometry of the ankle joint.

A block 902 of the control system 900 is configured to perform akinematic saturation to limit the desired angles θ_(d) based on physicalconstraints on range of angles of the foot 400. For instance, if thedesired roll angle is more than 25°, the controller limits the angle to25° at the block 902.

At block 904, the controller transforms or transmits the desired anglesθ_(d), which are defined in an angular space of the foot 400, to desiredgeneralized coordinates q_(d) defined in a linear space of the actuators404, 406, and 408. Particularly, desired roll and pitch angles θ_(d) canbe transformed into desired linear positions q_(d) of the actuators 404,406, and 408.

The transformation represented by the block 904 may be expressed as afunction that defines the relationship between the positions of theactuators 404, 406, and 408 and the angles of the foot 400. Assumingthat

$q_{d} = \begin{bmatrix}q_{1} \\q_{2} \\q_{3}\end{bmatrix}$represents the desired linear positions of actuators 404, 406, and 408,respectively, and

${\theta_{d} = \begin{bmatrix}\theta_{1} \\\theta_{2}\end{bmatrix}},$a function ƒ may be a transform matrix that transforms the desiredangles θ_(d) to desired linear positions q_(d) as follows:q _(d)=ƒ(θ_(d))  (1)

Elements of the function ƒ may be based on kinematic parameters of theankle mechanism. The calculations represented by equation 1 may thus beperformed at the transmission block 904 to determine q_(d).

At block 906, similar to the block 902, the desired positions q_(d) ofthe actuators are limited due to physical constraints on motion of theactuators 404, 406, and 408, i.e., limits on motion of pistons of theactuators 404, 406, and 408. For instance, if the piston 502 is limitedto move (e.g., extend) an amount of y centimeters (cm), and the desiredposition is greater than y cm, then the desired position is modified tobe limited to y cm.

In an example, the robot may include position sensors coupled to theactuators 404, 406, and 408 to provide piston position information tothe controller. The position information may include, for example,measurements of respective positions q of the pistons 502, 508, and 514of the actuators 404, 406, and 408, respectively, in Cartesiancoordinates. In another example, angle sensors may be coupled to jointsof the robot to provide angle measurements to the controller. Thecontroller may then use the function fin equation 1 to determine linearpositions of the pistons of the actuators 404, 406, and 408 thatcorrespond to the measured angles.

At summation block 908, the sensed positions q are subtracted from thedesired positions q_(d) to determine an error (e) or discrepancy betweenactual positions q and desired positions q for the actuators 404, 406,and 408.

At gain block 910, the errors (e) are then multiplied by a gain matrix Kdetermined by the controller. The matrix K is determined to meetparticular criteria related to desired responses of the hydraulic system(e.g., speed of response, damping, controllability, stability, etc.).The output of the multiplication at the gain block 910 is provided assignals to the actuation system (e.g., signals to a hydraulic systemincluding a source of pressurized fluid, hydraulic valves, etc. asdescribed in FIGS. 8A and 8B).

Components of the control system 900 may be configured to work in aninterconnected fashion with each other and/or with other componentscoupled to respective systems. One or more of the described operationsor components of the control system 900 may be divided into additionaloperational or physical components, or combined into fewer operationalor physical components. In some further examples, additional operationaland/or physical components may be added to the examples illustrated byFIG. 9. Still further, any of the blocks 902, 904, 904, 908, and 910 mayinclude or be provided in the form of a processor (e.g., amicroprocessor, a digital signal processor (DSP), etc.) configured toexecute program code including one or more instructions for implementinglogical operations described herein. The control system 900 may furtherinclude any type of computer readable medium (non-transitory medium) ormemory, for example, such as a storage device including a disk or harddrive, to store the program code. In an example, the control system 900may be included within other systems.

IV. Example Torque Control System

If the foot 400 is placed on a surface on which the robot operates, thecontroller may apply specific forces and torques on the surface bycommanding the actuators 404, 406, and 408. Particularly, the controllermay apply a roll torque on the surface by commanding the two actuators404 and 406. Similarly, the controller may apply a pitch torque on thesurface by controlling the hind actuator 408 and the anterior pair ofactuators 404 and 406.

By controlling the roll and pitch torques, the controller may affect alocation of a center of pressure (COP) of the foot 400. The COP is theterm given to the point of application of the ground reaction forcevector. The ground reaction force vector represents the sum of allforces acting between the foot 400 and its supporting surface.

FIG. 10 illustrates effect of a location of a COP on operation of arobot, in accordance with an example implementation. FIG. 10 illustratesthe robot operating on a surface 1000. During operation of the robot onthe surface 1000, a ground reaction force vector R represents the sum ofall interaction forces between the robot and the surface 1000 (e.g.,reaction force applied by the surface 1000 on the robot as the robotoperates). The resultant force vector R acts at a COP 1002.

The COP 1002 is thus the point of application of the reaction forcevector R applied by the surface 1000 on the robot. The COP 1002 is notstatic. For instance, during walking of the robot, the COP 1002 may benear a heel of the robot at the time of heel strike. The COP 1002 movesanteriorly throughout a step, and is located near toes of the robot atthe toe-off phase of the step.

Further, the controller may change location of the COP 1002 to controlforward speed of the robot. For example, the robot may slow down bycommanding the robot to press its foot 400 down to move the COP 1002toward toes of the foot 400. Conversely, by moving the COP 1002 toward aheel of the foot 400, the robot may speed up.

The location of the COP 1002 may also affect balance of the robot. Theresultant force vector R causes a moment to be applied at a center ofmass (COM) 1004 of the robot. The robot is considered rotationallystable (i.e., the robot maintains its balance) if the moment computed atthe COM 1004 sums up to a zero moment. According to principles ofmechanics, the resultant external moment on the robot is equal to therate of change of angular momentum {dot over (H)}_(COM) about the COM1004.

For a rotationally stable robot, i.e., a robot that is not tipping, thecentroidal rate of change of angular momentum {dot over (H)}_(COM)should be zero or within a threshold value from zero. If the resultantforce vector R, which is applied at the COP 1002, passes through the COM1004, a zero moment is generated around the COM 1004. Thus, the rate ofchange of centroidal angular momentum {dot over (H)}_(COM) about the COM1004 is zero and the robot is rotationally stable. Conversely, if theresultant force vector R applied at the COP 1002 does not pass throughthe COM 1004, a non-zero moment may be generated around the COM 1004.Such a moment may cause the robot to tip or lean. Thus, the location ofthe COP 1002 may affect orientation of a body of the robot as well asstability of the robot.

Therefore, the controller of the robot may seek to control location ofthe COP 1002 to control operation of the robot (e.g., control theforward speed of the robot, orientation of the robot, stability of therobot, etc.). The controller may control the location of the COP 1002 byway of controlling forces/torques applied by the actuators 404, 406, and406 on the surface 1000. Specifically, based on a desired location ofthe COP 1002, the controller may determine commands to an actuationsystem that operates the actuators. For example, if an electricactuation system operates the actuators, the controller may providethese commands to electric motors that operate the actuators. In anotherexample, if a hydraulic actuation system operates the actuators such asthe hydraulic systems shown in FIGS. 8A and 8B, the controller mayprovide the commands to the valves and source of fluid described inFIGS. 8A and 8B.

The commands to the actuation system (e.g., the hydraulic system) causethe actuators 404, 406, and 406 to apply forces on the foot 400. Theseforces cause the foot 400 to apply pitch and roll torques on the surface1000. The controller may vary these torques to vary the COP locationwhere R is applied on the foot 400 until the commanded COP issubstantially achieved. The term “substantially achieved” indicatesplacing the COP within a threshold distance value (e.g., within ±1 cm)from the commanded COP. Thus, by commanding the foot 400 to applyparticular roll and pitch torques on the surface 1000, the controllermay achieve a desired or commanded COP location. An example controlsystem that implements this process is described next.

FIG. 11 illustrates an example torque control system 1100, in accordancewith an example implementation. At block 1102, the controller determinesdesired forces ƒ _(g) to be applied by the actuators 404, 406, and 406to achieve a particular desired COP location. The controller may thendetermine desired torques using a Jacobian matrix J_(COP) thattransforms the desired forces ƒ _(g) to corresponding desiredfeedforward torques τ_(ff). The controller may implement the followingequation at the block 1102:τ_(ff) =J _(COP) ^(T) ƒ _(g)  (2)The superscript T designates a transpose of the Jacobian J_(COP). TheJacobian J_(COP) maps angular rates of change to actuator linearvelocities. Elements of the Jacobian may be determined based onkinematics of members or links that form a leg of the robot, forexample.

Sensors may be disposed on a sole of the foot 400 and may be configuredto provide information to the controller that indicates an actuallocation of the COP 1002. For example, the sensors could be forcesensors that provide measurements indicative of forces applied by thefoot 400 on the surface 1000 (or reaction forces by the surface 1000 onthe foot 400). The controller may be configured to resolve the actuallocation of the COP 1002 based on such force measurements. Other sensortypes and configurations are possible.

The controller may further be configured to implement a feedback closedloop control system based on the measured and desired COP locations. Thecontroller may, for instance, simulate dynamics of the COP 1002 as asecond order system. Particularly, the controller may have access to ameasured or actual location of the COP 1002 and may be configured tocompare that actual location to a desired location COP at summationblock 1104. The difference between the actual location and the desiredlocation is an error or a discrepancy that is then multiplied by aproportional gain K_(COP) at gain block 1106.

The controller may also determine a time rate of change (a derivative)of the measured COP location, i.e., C{dot over (O)}P, and a time rate ofchange (a derivative) of the desired COP location, i.e.,

$\frac{\bullet}{COP}.$The controller may compare the rates of change at summation block 1108and multiply the difference by a damping term b_(COP) at block 1110.Further, the controller may also determine a desired acceleration forthe COP location, i.e., CÖP and multiply that acceleration by a designparameter M to determine an inertial term M.CÖP. This inertial term, theoutput signal from the block 1108, and the output signal from the block1106 are summed at summation block 1112 to determine a desired feedbacktorque τ_(COP).

The feedforward torque τ_(ff) and the feedback torque τ_(COP) are summedat summation block 1114 to determine a desired torque τ. The desiredtorque τ is used at block 1116 to determine corresponding desired forcesƒ to be applied by the actuators by solving the following equation:J ^(T) ƒ=τ  (3)where J^(T) is a transpose of a Jacobian matrix J determined based onkinematics of the ankle mechanism of the robot, for example.

Solving equation (3) may be subject to several constraints. For example,the controller may impose a constraint on how small the desired forcescan be. In other words, the controller may determine minimum values forthe desired forces. As an example for illustration, the actuators 404,406, and 408 may have push-only type pistons as described with respectto FIG. 5. In this example, the actuators 404, 406, and 408 cannot applya pulling force. As such, the controller determines the minimum forcesto be applied by the actuators so as to maintain contact in thespherical joints 504, 510, and 516. In this manner, the connecting rods500, 506, and 512 may not separate from the corresponding pistons 502,508, and 514, respectively.

If the desired forces are determined to be less than a minimum force,the controller modifies the determined desired force to be equal to theminimum force. Mathematically, the controller solves equation (3)subject to a constraint expressed by an inequality ƒ _(i)≧ƒ_(min). ƒ_(i) is a desired force determine for an actuator i (any of theactuators 404, 406, and 408) and ƒ_(min) is a minimum designated forcebelow which the desired force should not be allowed to fall. Asmentioned above, this minimum force may be determined to, for example,ensure that the connecting rods 500, 506, and 512 remain seated in thespherical joints 504, 510, and 516, respectively, as the pistons 502,508, and 514 move. In examples, ƒ_(min) could be different for eachactuator.

Thus, the controller determines at block 1116 three desired forces ƒ_(H), ƒ _(L), and ƒ _(R) to be applied by the actuators 408, 404, and406, respectively. These forces would cause roll and pitch torques to beapplied by the foot 400 on the surface 1000 so as to place the COP at adesired location.

At summation block 1118, a force ƒ_(m,H) may be added to or subtractedfrom ƒ _(H). For example, the force ƒ_(m,H) may be subtracted from ƒ_(H) to ensure that the modified desired force resulting from the block1118 is below a threshold maximum allowable force. Such a thresholdmaximum allowable force may, for example, take into consideration designstrength limitations of the actuator 408. Similarly, at summation block1120, a force ƒ_(m,L) may be added to or subtracted from ƒ _(L), and atsummation block 1122 a force ƒ_(m,H) may be added to or subtracted fromƒ _(R).

At gain block 1124 the modified desired hind force resulting from thesummation block 1118 is multiplied by a force gain K_(ƒ,H). At summationblock 1126, another force term, mod_(H), is added to the force resultingfrom the gain block 1124. The force term mod_(H) may, for example,accommodate any limitations related to a particular hydraulic systempressure relief value, or improving force tracking, i.e., achieving adesired force with minimum errors. Similarly, at gain block 1128 themodified desired left actuator force resulting from the block summation1120 is multiplied by a force gain K_(ƒ,L). At summation block 1130, aforce term mod_(L) is added to the force resulting from the gain block1128. Also, at gain block 1132, the modified desired right actuatorforce resulting from the block 1122 is multiplied by a force gainK_(ƒ,R). At summation block 1134, a force term mod_(R) is added to theforce resulting from the gain block 1132. Similar to the force termmod_(H), the force terms mod_(L) and mod_(R) may take into account apressure relief value and force tracking performance.

Force signals cmd_(H), cmd_(L), and cmd_(R) resulting from the summationblocks 1126, 1130, and 1134, respectively, are used to actuate the hindactuator 408, the left actuator 404, and the right actuator 406,respectively, to achieve the determined desired force levels. Forinstance, the controller may provide these cmd_(H), cmd_(L), and cmd_(R)signals to the valves (e.g., the valves 812, 814, and 816 or the valves822 and 830), which control the actuators 404, 406, and 408. The desiredforce levels in turn substantially achieve commanded torques, which aredetermined to locate the COP 1002 at a particular location. The term“substantially achieve,” is used herein to indicate achieving a torquewithin a threshold torque value (e.g., within ±5 N·m) from the desiredtorque.

Components of the control system 1100 may be configured to work in aninterconnected fashion with each other and/or with other componentscoupled to respective systems. One or more of the described operationsor components of the control system 1100 may be divided into additionaloperational or physical components, or combined into fewer operationalor physical components. In some further examples, additional operationaland/or physical components may be added to the examples illustrated byFIG. 11. Still further, less components or parts of the control system1100 may be used. For instance, in some examples, the desired torque τmay be based on either τ_(ff) or τ_(COP), but not both. Further, any ofthe blocks 1102-1134 may include or be provided in the form of aprocessor (e.g., a microprocessor, a digital signal processor (DSP),etc.) configured to execute program code including one or moreinstructions for implementing logical operations described herein. Thecontrol system 1100 may further include any type of computer readablemedium (non-transitory medium) or memory, for example, such as a storagedevice including a disk or hard drive, to store the program code. In anexample, the control system 1100 may be included within other systems.

Further, although the torque control system 1100 is described aboveusing three actuators and a hydraulic system, the control system 1100may be extended to a different number of actuators and differentactuation mechanisms (e.g., electric actuation mechanism).

The maximum achievable forces to be applied by the actuators 404, 406,and 408 could be limited. For example, the maximum achievable forcescould be limited by maximum hydraulic system pressure. For instance, themaximum hydraulic pressure of the fluid that the source 818 is capableof providing may be P_(max) (e.g., 3000 psi). An area of a piston of anactuator (e.g., the piston 502 of the actuator 404) on which thepressure P_(max) acts may be an area A. In this case, the maximum forcethat the actuator could apply is F_(max)=P_(max)·A. The other twoactuators also have similar limitations. In examples, pressures higherthan system pressures could be achieved. For instance, regeneration andother techniques could be used to increase pressure in chambers of theactuators beyond the maximum hydraulic pressure of the source 818.However, the maximum force may still be limited so as to avoid physicaldamage to an actuator.

Thus, the torques that the foot 400 could apply on the surface 1000 toplace the COP 1002 at a particular location are limited as well. Such alimitation on torques in turn limits possible locations at which the COP1002 could be placed.

FIGS. 12A-12C illustrate possible locations of the COP 1002 of the foot400 based on pitch and roll angles of the foot 400, in accordance withan example implementation. In FIGS. 12A-12C, an area within or definedby solid line 1200 represents a boundary of an area where the controllercould place the COP 1002 by operating the actuators 404, 406, and 408.The controller could place the COP 1002 within the area defined by theline 1200 when the robot is required to handle its own body weight.

The controller could place the COP 1002 within the area defined by adashed line 1202 when the robot is required to handle double its ownbody weight. For instance, the robot may have to push on the groundsurface to accelerate upward (e.g., to take an upward step on aplatform) and/or may be carrying a load. Such acceleration may amount tothe robot carrying more than its own weight as the robot has to overcomegravity acting on the robot's body as well as accelerate upward againstgravity. As depicted in FIGS. 12A-12C, the area defined within theboundaries of the line 1202 is smaller than the respective area definedwithin the boundaries of the line 1200. The size of the areas defined bythe lines 1200 and 1202 depends on or varies with a mass of the robot.

The possible COP locations are also limited to the areas within thelines 1200 and 1202 by limitations on magnitude of torques to be appliedby the foot 400 on the surface 1000. As mentioned above, the limitationsof torques are determined by limitations on magnitude of forces thatcould be applied by the actuators 404, 406, and 408.

Further, as shown in FIGS. 12A-12C, size and shape of the areas definedwithin the lines 1200 and 1202 vary based on roll and pitch angles ofthe foot 400. For example, FIG. 12A illustrates possible locations wherethe controller could place the COP 1002 when the roll angle is 0° andthe pitch angle is −40°. The negative sign indicates toe-up or pitchbackward position. FIG. 12B illustrates possible locations where thecontroller could place the COP 1002 when the roll and pitch angles areboth 0°, i.e., the foot 400 is flat. FIG. 12C illustrates possiblelocations where the controller could place the COP 1002 when the rollangle is 0° and the pitch angle is 40°. A positive sign indicatestoe-down or pitch forward position. The size and shapes defined withinthe lines 1200 and 1200 would also vary with roll angle of the foot 400.

Sensors, such as sensors 1204A, 1204B, 1204C, and 1204D, may be disposedon the foot 400 and may be configured to provide information to thecontroller that indicates an actual location of the COP 1002. Forexample, the sensors 1204A, 1204B, 1204C, and 1204D could be forcesensors that provide measurements indicative of forces applied by thefoot 400 on the surface 1000 (or reaction forces applied by the surface1000 on the foot 400). The controller may be configured to resolve theactual location of the COP 1002 based on such force measurements. Forinstance, the controller may determine magnitude and direction of actiona force that is equivalent to the four forces sensed by the sensors1204A, 1204B, 1204C, and 1204D. A location of the foot 400 through whichthe direction of action of that equivalent force pass may be thelocation of the COP 1002.

The controller may use this information along with commanded COPlocation information to determine commands to the hydraulic system asdescribed with respect to FIG. 11 above. The commands to the hydraulicsystem determine forces to be applied by the actuators 404, 406, and 408on the foot 400. These forces cause the foot 400 to apply pitch and rolltorques on the surface 1000 to achieve the commanded COP is achieved.

However, if the desired location of the COP is not within the possiblelocations shown in FIGS. 12A-12C, or if the torques required to achievea particular COP location exceed physical limitations on torquemagnitudes, the controller may modify the commanded torques.

FIGS. 13A-13C illustrate possible scenarios of torque modification, inaccordance with example implementations. In FIGS. 13A-13C, “H” refers tothe hind actuator 408, “L” refers to the left anterior actuator 404 and“R” refers to the right anterior actuator 406. The controller maydetermine a torque envelope 1300 based on physical limitations onmagnitudes of forces that could be applied by the actuators 404, 406,and 408, which limit corresponding torques. If the controller determinesthat the pitch and roll torques that would achieve a particular locationof the COP 1002 are within a torque envelope 1300, the controller maycommand the actuators 404, 406, and 406 to achieve such torques.

As examples, if the controller determines that the pitch and rolltorques that would achieve a particular location of the COP 1002 arewithin an area 1302, then the controller may command the actuators 404and 408 to achieve the determined torques. If the controller determinesthat the pitch and roll torques that would achieve a particular locationof the COP 1002 are within an area 1304, then the controller may commandthe actuators 406 and 408 to achieve the determined torques. Similarly,if the controller determines that the pitch and roll torques that wouldachieve a particular location of the COP 1002 are within an area 1306,then the controller may command the actuators 404 and 406 to achieve thedetermined torques.

However, as mentioned above, in some examples, the torques to be appliedby the foot 400 on the surface 1000 to achieve a particular location forthe COP 1002 may be outside the envelope 1300, as illustrated by adesired pitch and roll torques point 1308. The point 1308 representsnegative pitch and roll torques that should be applied by the foot 400on the surface 1000 to achieve a desired location for the COP 1002.However, due to physical limitations, the torques represented by thepoint 1308 is not achievable. In this case, the controller may modifythe desired torques to accommodate the physical limitations of theactuators 404, 406, and 408.

In examples, the controller may prioritize roll torque over pitch torqueor vice versa. For instance, as illustrated in FIG. 13A, the controllermay prioritize roll torque over pitch torque. Thus, the controllereffectively moves the point 1308 horizontally to a corresponding point1310 on the envelope 1300. In this manner, the desired roll torque doesnot change; however, the desired pitch torque is modified. In theexample illustrated in FIG. 13A, the change in the pitch torque issufficiently significant to flip a sign of the pitch torque from anegative sign to a positive sign. The robot may become unstable in thiscase. As an example for illustration, the negative pitch torquerepresented by the point 1308 may be determined by the control system inFIG. 11 so as to place the COP 1002 at a particular location thatrenders the robot stable. Flipping the pitch torque sign from negativeto positive by moving the point 1308 to the point 1310 may significantlyalter the location of the COP 1002, rendering the robot unstable. Forinstance, the robot may launch itself backwards and cause itself to beunstable. In other examples, the controller may prioritize pitch torqueover roll torque.

In some examples, the controller may perform a tradeoff analysis andmodify both the pitch and roll torques as illustrated in FIG. 13B. Asshown in FIG. 13B, the controller may modify both the pitch and rolltorques from the point 1308 to a corresponding point 1312 on theenvelope 1300. In this manner, no sign change occurs in either the pitchor roll torques.

In other examples, the controller may assign weights to both the pitchtorque and the roll torque. In some scenarios, the pitch torque may beassigned a larger weight than the roll torque. In these scenarios, thecontroller may modify the torques by moving the point 1308 to a region1314 shown in FIG. 13C. In other scenarios, the roll torque may beassigned a larger weight than the pitch torque, and the controller maymodify the torques by moving the point 1308 to a region 1316. Inexamples, the size and shape of the regions 1314 and 1316 may vary basedon the particular scenario.

V. Example Methods

FIG. 14 is a flow chart 1400 for controlling a three-piston anklemechanism of a legged robot, in accordance with an exampleimplementation. The flow chart 1400 may include one or more operations,or actions as illustrated by one or more of blocks 1402-1406. Althoughthe blocks are illustrated in a sequential order, these blocks may insome instances be performed in parallel, and/or in a different orderthan those described herein. Also, the various blocks may be combinedinto fewer blocks, divided into additional blocks, and/or removed basedupon the desired implementation.

In addition, for the flow chart 1400 and other processes and operationsdisclosed herein, the flow chart shows operation of one possibleimplementation of present examples. In this regard, each block mayrepresent a module, a segment, or a portion of program code, whichincludes one or more instructions executable by a processor or acontroller for implementing specific logical operations or steps in theprocess. The program code may be stored on any type of computer readablemedium or memory, for example, such as a storage device including a diskor hard drive. The computer readable medium may include a non-transitorycomputer readable medium or memory, for example, such ascomputer-readable media that stores data for short periods of time likeregister memory, processor cache and Random Access Memory (RAM). Thecomputer readable medium may also include non-transitory media ormemory, such as secondary or persistent long term storage, like readonly memory (ROM), optical or magnetic disks, compact-disc read onlymemory (CD-ROM), for example. The computer readable media may also beany other volatile or non-volatile storage systems. The computerreadable medium may be considered a computer readable storage medium, atangible storage device, or other article of manufacture, for example.In addition, for the flow chart 1400 and other processes and operationsdisclosed herein, one or more blocks in FIG. 14 may represent circuitryor digital logic that is arranged to perform the specific logicaloperations in the process.

At block 1402, the flow chart 1400 includes determining a desiredlocation for a center of pressure of a foot of a robot operating on asurface. As described above, the robot includes a first actuator (e.g.,the actuator 404) and a second actuator (e.g., the actuator 406)connecting a first (e.g., anterior) portion of the foot (e.g., the foot400) to a shin (e.g., the shin 402) of the robot. Extension of the firstactuator accompanied by refraction of the second actuator causes thefoot to roll in a first roll direction (e.g., counter-clockwise)relative to the shin. Retraction of the first actuator accompanied byextension of the second actuator causes the foot to roll in a secondroll direction (e.g., clockwise) opposite to the first roll directionrelative to the shin.

The robot further includes a third actuator (e.g., the hind actuator408) connecting a second (e.g., posterior) portion of the foot to theshin. Extension of the third actuator accompanied by retraction of oneof or both the first and second actuators causes the foot to pitch in afirst pitch direction (e.g., pitch backward or toe-up) relative to theshin. Retraction of the third actuator accompanied by extension of oneof or both the first and second actuators causes the foot to pitch in asecond pitch direction (e.g., pitch forward or toe-down) opposite to thefirst pitch direction relative to the shin.

As described above with respect to FIG. 10, a controller of the robotmay determine a desired location of a COP of the foot to balance therobot, control orientation of the robot, control speed of the robot,etc. The controller may be configured to command a hydraulic systemcontrolling the three actuators so as to operate the three actuators toachieve the desired location of the COP.

At block 1404, the flow chart 1400 includes determining pitch and rolltorques to be applied by the foot on the surface to cause a location ofthe COP to be within a threshold distance from the desired location. Asdescribed with respect to FIG. 11, based on the desired COP location,the controller may implement a control system to determine desiredforces to be applied by the three actuators. Based on either or both ofthe desired COP location and the desired forces, the controller maydetermine desired pitch and roll torques to be applied by the foot onthe surface on which the robot operates to place the COP at the desiredlocation.

In some examples as described with respect to FIGS. 13A-13C, thecontroller may determine that the desired pitch and roll torques areunachievable due to physical limitations of the actuators or thehydraulic system. In these examples, the controller may modify at leastone of the pitch and roll torques to obtain a modified combination ofpitch and roll torques that are achievable by actuating the first,second, and third actuators.

In modifying the pitch and/or roll torques the controller may prioritizeeither the roll torque or the pitch torque so as to maintain theprioritized torque substantially the same (i.e., within a thresholdtorque value from the desired torque), while modifying the other torque.In examples, the controller may modify both the roll and pitch torquesso as to preclude a change of sign of the roll and pitch torques asdescribed with respect to FIG. 13B.

At block 1406, the flow chart 1400 includes actuating at least one ofthe first, second, and third actuators to cause the foot to apply thedetermined pitch and roll torques. As described with respect to FIGS. 8Aand 8B, the robot may include a hydraulic system that controls operationof the three actuators. The hydraulic system may include at least asource of pressurized hydraulic fluid configured to provide pressurizedfluid through a hydraulic supply line to the rest of the hydraulicsystem. The hydraulic system may also include a reservoir (e.g., thereservoir 820) having low pressure fluid and configured, in someexamples, to receive fluid discharged from the actuators.

The hydraulic system may also include a first valve (e.g., the valve812) configured to control fluid flow from the source to the firstactuator and from the first actuator to a hydraulic return line. Asecond valve (e.g., the valve 814) may be configured to control fluidflow from the source to the second actuator and from the second actuatorto the hydraulic return line. A third valve (e.g., the valve 816) may beconfigured to control fluid flow from the source to the third actuatorand from the third actuator to the hydraulic return line. The hydraulicreturn line may be a return line leading to the reservoir or may be areturn line leading to another actuator or another chamber of the sameactuator in case of regeneration. To actuate the first, second, andthird actuators, the controller actuates the hydraulic system includingthe source and the first, second, and third valves.

In another example, as described in FIG. 8B, the first actuator includesa first chamber (e.g., the chamber 806) and the second actuator includesa second chamber (e.g., the chamber 808). The third actuator includes athird chamber (e.g., the chamber 810) and a fourth chamber (e.g., thechamber 811). Further, in this example, the hydraulic system may includea first valve (e.g., the valve 822) configured to control fluid flowfrom the source to either the first chamber (e.g., the chamber 806) ofthe first actuator or the third chamber (e.g., the chamber 810) of thethird actuator. That first valve may also control fluid flow dischargedfrom the other chamber (i.e., the first chamber or the third chamber) toa hydraulic return line. The hydraulic system may also include a secondvalve (e.g., the valve 830) configured to control fluid flow from thesource to either the second chamber (e.g., the chamber 808) of thesecond actuator or the fourth chamber (e.g., the chamber 811) of thethird actuator. That second valve may also control fluid flow dischargedfrom the other chamber (i.e., the second chamber or the fourth chamber)to the hydraulic return line. To actuate the first, second, and thirdactuators, the controller may actuate the first and second valves.

Alternative, or in addition, to actuating at least one of the first,second, and third actuators to cause the foot to apply particulartorques, the controller may actuate the actuators to place the foot in aparticular desired orientation. As described with respect to FIG. 9, thecontroller may determine desired pitch and torque angles for the foot soas to place the foot in a desired orientation. The controller may thentransform the desired pitch and roll angles into desired positions forthe first, second, and third actuators (e.g., desired linear positionsof pistons of the actuators 404, 406, and 408). The controller may thenactuate at least one of the first, second, and third actuators toachieve the desired positions. Achieving the desired positions for theactuators may result in achieving the desired pitch and roll angles, andthus place the foot in the desired orientation.

VI. Conclusion

The arrangements described herein are for purposes of example only. Assuch, those skilled in the art will appreciate that other arrangementsand other elements (e.g., machines, interfaces, operations, orders, andgroupings of operations, etc.) can be used instead, and some elementsmay be omitted altogether according to the desired results. Further,many of the elements that are described are functional entities that maybe implemented as discrete or distributed components or in conjunctionwith other components, in any suitable combination and location.

While various aspects and implementations have been disclosed herein,other aspects and implementations will be apparent to those skilled inthe art. The various aspects and implementations disclosed herein arefor purposes of illustration and are not intended to be limiting, withthe true scope being indicated by the following claims, along with thefull scope of equivalents to which such claims are entitled. Also, theterminology used herein is for the purpose of describing particularimplementations only, and is not intended to be limiting.

What is claimed is:
 1. A robot comprising: a first actuator and a secondactuator connecting an anterior portion of a first member of the robotto a second member of the robot, wherein extension of the first actuatoraccompanied by retraction of the second actuator causes the first memberto roll in a first roll direction relative to the second member, andwherein retraction of the first actuator accompanied by extension of thesecond actuator causes the first member to roll in a second rolldirection opposite to the first roll direction relative to the secondmember; a third actuator connecting a posterior portion of the firstmember to the second member, wherein extension of the third actuatoraccompanied by retraction of one of or both the first and secondactuators causes the first member to pitch in a first pitch directionrelative to the second member, and wherein retraction of the thirdactuator accompanied by extension of both the first and second actuatorscauses the first member to pitch in a second pitch direction opposite tothe first pitch direction relative to the second member; and wherein thefirst actuator includes a first chamber, the second actuator includes asecond chamber, and the third actuator includes a third chamber and afourth chamber, the robot further comprising a hydraulic system thatincludes: (i) a source of pressurized hydraulic fluid; (ii) a firstvalve configured to: (a) control fluid flow from the source to the firstchamber, while controlling fluid flow discharged from the third chamberto a hydraulic return line, or (b) control fluid flow from the source tothe third chamber, while controlling fluid flow discharged from thefirst chamber to the hydraulic return line; and (iii) a second valveconfigured to: (a) control fluid flow from the source to the secondchamber, while controlling fluid flow discharged from the fourth chamberto the hydraulic return line, or (b) control fluid flow from the sourceto the fourth chamber, while controlling fluid flow discharged from thesecond chamber to the hydraulic return line.
 2. The robot of claim 1,further comprising: a hydraulic system including at least (i) a sourceof pressurized hydraulic fluid, (ii) a first valve configured to controlfluid flow from the source to the first actuator and from the firstactuator to a hydraulic return line, (iii) a second valve configured tocontrol fluid flow from the source to the second actuator and from thesecond actuator to the hydraulic return line, and (iv) a third valveconfigured to control fluid flow from the source to the third actuatorand from the third actuator to the hydraulic return line.
 3. The robotof claim 1, further comprising an intermediate member coupled to thefirst member, wherein the third actuator connects the intermediatemember to the second member of the robot such that (i) motion of thefirst and second actuators in opposite directions relative to each othercauses the first member to roll relative to the intermediate member, and(ii) motion of the third actuator in an opposite direction relative tomotion of at least one of the first actuator and the second actuatorcauses the first member and the intermediate member to pitch.
 4. Therobot of claim 1, wherein the robot includes a leg, and wherein thefirst member is a foot of the leg and the second member is a shin of theleg.
 5. The robot of claim 4, further comprising a controller, whereinthe controller is configured to perform operations comprising:determining a desired location for a center of pressure of the foot asthe robot operates on a surface; determining pitch and roll torques tobe applied by the foot on the surface to cause a location of the centerof pressure to be within a threshold distance from the desired location;and actuating the first, second, and third actuators to cause the footto apply the determined pitch and roll torques.
 6. The robot of claim 5,wherein the operations further comprise: determining that the pitch androll torques are unachievable; modifying at least one of the pitch androll torques to obtain a modified combination of pitch and roll torquesthat are achievable by actuating the first, second, and third actuators;and actuating the first, second, and third actuators to cause the footto apply the modified combination of pitch and roll torques.
 7. Therobot of claim 6, wherein modifying at least one of the pitch and rolltorques comprises prioritizing either the roll torque or the pitchtorque so as to maintain the prioritized torque substantially the same,while modifying the other torque.
 8. The robot of claim 6, whereinmodifying at least one of the pitch and roll torques comprises modifyingboth the roll and pitch torques so as to preclude a change of sign ofthe roll and pitch torques.
 9. A method comprising: determining by acontrol system of a robot, a desired location for a center of pressureof a foot of the robot operating on a surface, wherein the robotincludes: (i) a first actuator and a second actuator connecting a firstportion of the foot to a shin of the robot, wherein extension of thefirst actuator accompanied by retraction of the second actuator causesthe foot to roll in a first roll direction relative to the shin, andwherein retraction of the first actuator accompanied by extension of thesecond actuator causes the foot to roll in a second roll directionopposite to the first roll direction relative to the shin; and (ii) athird actuator connecting a second portion of the foot to the shin,wherein extension of the third actuator accompanied by retraction of oneof or both the first and second actuators causes the foot to pitch in afirst pitch direction relative to the shin, and wherein retraction ofthe third actuator accompanied by extension of one of or both the firstand second actuators causes the foot to pitch in a second pitchdirection opposite to the first pitch direction relative to the shin,wherein the first actuator includes a first chamber, the second actuatorincludes a second chamber, and the third actuator includes a thirdchamber and a fourth chamber, the robot further comprising a hydraulicsystem that includes: (i) a source of pressurized hydraulic fluid, (ii)a first valve configured to: (a) control fluid flow from the source tothe first chamber, while controlling fluid flow discharged from thethird chamber to a hydraulic return line, or (b) control fluid flow fromthe source to the third chamber, while controlling fluid flow dischargedfrom the first chamber to the hydraulic return line, and (iii) a secondvalve configured to: (a) control fluid flow from the source to thesecond chamber, while controlling fluid flow discharged from the fourthchamber to the hydraulic return line, or (b) control fluid flow from thesource to the fourth chamber, while controlling fluid flow dischargedfrom the second chamber to the hydraulic return line; determining pitchand roll torques to be applied by the foot on the surface to cause alocation of the center of pressure to be within a threshold distancefrom the desired location; and actuating at least one of the first,second, and third actuators to cause the foot to apply the determinedpitch and roll torques.
 10. The method of claim 9, wherein determiningthe pitch and roll torques comprises: determining that the pitch androll torques are unachievable; and modifying at least one of the pitchand roll torques to obtain a modified combination of pitch and rolltorques that are achievable by actuating at least one of the first,second, and third actuators.
 11. The method of claim 10, whereinmodifying at least one of the pitch and roll torques comprisesprioritizing either the roll torque or the pitch torque so as tomaintain the prioritized torque substantially the same, while modifyingthe other torque.
 12. The method of claim 10, wherein modifying at leastone of the pitch and roll torques comprises modifying both the roll andpitch torques so as to preclude a change of sign of the roll and pitchtorques.
 13. The method of claim 9, wherein the robot further comprisesa talus assembled to the foot, wherein the third actuator connects thetalus to the shin of the robot such that (i) motion of the first andsecond actuators in opposite directions relative to each other causesthe foot to roll relative to the talus, and (ii) motion of the thirdactuator in an opposite direction relative to motion of at least one ofthe first actuator and the second actuator causes the foot and the talusto pitch.
 14. The method of claim 9, further comprising: determining bythe control system, desired pitch and torque angles for the foot so asto place the foot in a desired orientation; transforming by the controlsystem, the desired pitch and roll angles into desired positions for thefirst, second, and third actuators; and actuating by the control system,at least one of the first, second, and third actuators to achieve thedesired positions.
 15. A non-transitory computer readable medium havingstored thereon instructions that, when executed by a controller of arobot, cause the robot to perform operations comprising: determining adesired location for a center of pressure of a foot of the robot,wherein the robot operates on a surface, and wherein the robot includes:(i) a first actuator and a second actuator connecting a first portion ofthe foot to a shin of the robot, wherein extension of the first actuatoraccompanied by retraction of the second actuator causes the foot to rollin a first roll direction relative to the shin, and wherein retractionof the first actuator accompanied by extension of the second actuatorcauses the foot to roll in a second roll direction opposite to the firstroll direction relative to the shin, and (ii) a third actuatorconnecting a second portion of the foot to the shin, wherein extensionof the third actuator accompanied by retraction of one of or both thefirst and second actuators causes the foot to pitch in a first pitchdirection relative to the shin, and wherein retraction of the thirdactuator accompanied by extension of one of or both the first and secondactuators causes the foot to pitch in a second pitch direction oppositeto the first pitch direction relative to the shin; determining pitch androll torques to be applied by the foot on the surface to cause alocation of the center of pressure to be within a threshold distancefrom the desired location; and actuating at least one of the first,second, and third actuators to cause the foot to apply the determinedpitch and roll torques, wherein the first actuator includes a firstchamber, the second actuator includes a second chamber, and the thirdactuator includes a third chamber and a fourth chamber, the robotfurther comprising a hydraulic system that includes: (i) a source ofpressurized hydraulic fluid, (ii) a first valve configured to: (a)control fluid flow from the source to the first chamber, whilecontrolling fluid flow discharged from the third chamber to a hydraulicreturn line, or (b) control fluid flow from the source to the thirdchamber, while controlling fluid flow discharged from the first chamberto the hydraulic return line; and (iii) a second valve configured to:(a) control fluid flow from the source to the second chamber, whilecontrolling fluid flow discharged from the fourth chamber to thehydraulic return line, or (b) control fluid flow from the source to thefourth chamber, while controlling fluid flow discharged from the secondchamber to the hydraulic return line.
 16. The non-transitory computerreadable medium of claim 15, wherein determining the pitch and rolltorques comprises: determining that the pitch and roll torques areunachievable; and modifying at least one of the pitch and roll torquesto obtain a modified combination of pitch and roll torques that areachievable by actuating at least one of the first, second, and thirdactuators.
 17. The non-transitory computer readable medium of claim 16,wherein modifying at least one of the pitch and roll torques comprisesprioritizing either the roll torque or the pitch torque so as tomaintain the prioritized torque substantially the same, while modifyingthe other torque.
 18. The non-transitory computer readable medium ofclaim 16, wherein modifying at least one of the pitch and roll torquescomprises modifying both the roll and pitch torques so as to preclude achange of sign of the roll and pitch torques.